package com.hb.trade.server.project.util;


import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * jnpf文件处理工具类
 *
 * @author zhaojk
 * @deprecated 该工具类应该出现在API层
 */
@Deprecated
public class JnpfFileUtil {
    private static final String WEB_ANNEX_FILE_PATH = "Resources/WebAnnexFile";

    /**
     * 解析jnpf文件上传之后的保存格式
     *
     * @param jsonArrayStr
     * @return
     * @deprecated 需要基于jnpf代码
     */
    @Deprecated
    public static List<Map<String, Object>> parse(String jsonArrayStr) {
        if (StringUtils.isEmpty(jsonArrayStr)) {
            return null;
        }
        List<Map<String, Object>> result = new ArrayList<>();
        List<Map> maps = JSONUtil.toList(jsonArrayStr, Map.class);
        if (CollUtil.isEmpty(maps)) {
            return result;
        }
        for (Map map : maps) {
            result.add(map);
        }
        return result;
    }

    /**
     * 解析jnpf文件上传之后的保存格式
     * 并获取第一个文件
     *
     * @param jsonArrayStr
     * @return
     * @deprecated 需要基于jnpf代码
     */
    @Deprecated
    public static File parseFirst(String jsonArrayStr) {
        List<Map<String, Object>> parse = parse(jsonArrayStr);
        if (CollectionUtils.isEmpty(parse)) {
            return null;
        }
        Map<String, Object> map = parse.get(0);
        String fileId = MapUtils.getString(map, "fileId");
        return getById(fileId);
    }

    /**
     * 获取已经上传的文件对象
     *
     * @param fileId
     * @return
     * @deprecated 需要基于jnpf代码
     */
    @Deprecated
    public static File getById(String fileId) {
        if (StringUtils.isEmpty(fileId)) {
            return null;
        }
        // jnpf工具类的封装菜的一批, 这里取不到值
        // ConfigValueUtil valueUtil = SpringContext.getBean(ConfigValueUtil.class);
        if (!fileId.startsWith("/") && !fileId.startsWith("\\")) {
            fileId = "/" + fileId;
        }
        return new File(WEB_ANNEX_FILE_PATH + fileId);
    }


}
